package cn.mccraft.uide.core.project;

import java.util.Collection;
import java.util.Set;

import com.google.common.collect.Sets;

import cn.mccraft.uide.api.project.dependency.DependencyContainer;
import cn.mccraft.uide.api.element.Element;
import cn.mccraft.uide.api.plugin.extension.ElementProvider;
import cn.mccraft.uide.api.plugin.extension.ProjectProvider;
import cn.mccraft.uide.api.project.Project;

public class ProjectManager implements cn.mccraft.uide.api.project.ProjectManager{
	
	private Set<RegisteredProjectProvider> registedProviders = Sets.newHashSet();
	
	public ProjectManager() {
		
	}

	@Override
	public <P extends Project> void register(ProjectProvider<P> provider) {
		// TODO 自动生成的方法存根
		
	}

	@Override
	public <P extends Project> void unregister(ProjectProvider<P> provider) {
		// TODO 自动生成的方法存根
		
	}

	@Override
	public <P extends Project> void unregister(Class<P> clazz) {
		// TODO 自动生成的方法存根
		
	}

	@Override
	public Collection<Class<?>> registedProjects() {
		// TODO 自动生成的方法存根
		return null;
	}

	@Override
	public <P extends Project> boolean isRegistedFor(Class<P> clazz) {
		// TODO 自动生成的方法存根
		return false;
	}

	@Override
	public <P extends Project> Set<DependencyContainer> getDependencies(Class<P> clazz) {
		// TODO 自动生成的方法存根
		return null;
	}

	@Override
	public <P extends Project> void addDependency(Class<P> clazz, DependencyContainer container) {
		// TODO 自动生成的方法存根
		
	}

	@Override
	public <P extends Project> void removeDependency(Class<P> clazz, DependencyContainer container) {
		// TODO 自动生成的方法存根
		
	}

	@Override
	public <P extends Project> Set<Class<?>> getElements(Class<P> clazz) {
		// TODO 自动生成的方法存根
		return null;
	}

	@Override
	public <P extends Project, E extends Element> void addElement(Class<P> clazz, ElementProvider<E> provider) {
		// TODO 自动生成的方法存根
		
	}

	@Override
	public <P extends Project, E extends Element> void removeElement(Class<P> clazz, ElementProvider<E> provider) {
		// TODO 自动生成的方法存根
		
	}

	@Override
	public <P extends Project, E extends Element> void removeElement(Class<P> clazz, Class<E> elementClazz) {
		// TODO 自动生成的方法存根
		
	}

}
